<?php

class App_Model_DbTable_User_Oauth_QqWeibo extends Ext_Db_Table  
{
    protected $_name = 'user_oauth_qqweibo';
    
    private static $_userOauthQqWeibo = array();
    
    public function getRowByUserId($userId)
    {    
        if(!$userId)
        {
            return "";
        }
        
        if(isset(self::$_userOauthQqWeibo['userId'][$userId]))
        {
            return self::$_userOauthQqWeibo['userId'][$userId];
        }
        
        $db = $this->getAdapter();
        $safe = $db->quoteInto(" userId = ? ", $userId);
        $row = $this->fetchRow($safe);
        
        if (!$row) {
            return "";
        }
        $userOauthQqWeibo = $row->toArray();

        self::$_userOauthQqWeibo['userId'][$userId] = $userOauthQqWeibo;

        return $userOauthQqWeibo;
    }
    
    public function addNew($inputArray)
    {
        $sql_data_array = array();
        if(array_key_exists('userId', $inputArray)) $sql_data_array['userId'] = $inputArray['userId'];
        if(array_key_exists('accessToken', $inputArray)) $sql_data_array['accessToken'] = $inputArray['accessToken'];
        if(array_key_exists('expiresIn', $inputArray)) $sql_data_array['expiresIn'] = $inputArray['expiresIn'];
        if(array_key_exists('openid', $inputArray)) $sql_data_array['openid'] = $inputArray['openid'];
        if(array_key_exists('status', $inputArray)) $sql_data_array['status'] = $inputArray['status'];
        
        try {
            $rows_affected = $this->insert($sql_data_array);
        }catch (Exception $e){
            trigger_error($e->getMessage(), E_USER_WARNING);
        }
    }
    
    public function addOld($inputArray, $userId)
    {
        $sql_data_array = array();
        if(array_key_exists('accessToken', $inputArray)) $sql_data_array['accessToken'] = $inputArray['accessToken'];
        if(array_key_exists('expiresIn', $inputArray)) $sql_data_array['expiresIn'] = $inputArray['expiresIn'];
        if(array_key_exists('openid', $inputArray)) $sql_data_array['openid'] = $inputArray['openid'];
        if(array_key_exists('status', $inputArray)) $sql_data_array['status'] = $inputArray['status'];
        if(!$sql_data_array){
            return "";
        }
        
        try {
            $db = $this->getAdapter();
            $where = $db->quoteInto(" userId = ? ", $userId);
            $rows_affected = $this->update($sql_data_array, $where);
            if($rows_affected){
                $this->_unsetUserOauthQqWeiboRow($userId);
            }
        }catch (Exception $e){
            trigger_error($e->getMessage(), E_USER_WARNING);
        }
    }
    
    private function _unsetUserOauthQqWeiboRow($userId)
    {
        if(!$userId){
            return "";
        }
        
        $userOauthQqWeibo = $this->getRowByUserId($userId);
        if(!$userOauthQqWeibo){
            return "";
        }
        
        unset(self::$_userOauthQqWeibo['userId'][$userId]);
    }
}  

